<html>
<head><meta charset="utf-8"><title>RangeInclusive representation: #67194 · t-libs · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/index.html">t-libs</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html">RangeInclusive representation: #67194</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="187314054"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314054" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314054">(Feb 03 2020 at 22:52)</a>:</h4>
<p>hey <span class="user-mention" data-user-id="116122">@simulacrum</span> , your note about removing <code>fn canonicalized_is_empty</code> led me to a thought ...</p>



<a name="187314132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314132">(Feb 03 2020 at 22:53)</a>:</h4>
<p>would it be bonkers to have an associated type be in charge of tracking the <code>is_empty</code>-ness of the iterator that is implicitly associated with the range?</p>



<a name="187314234"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314234" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314234">(Feb 03 2020 at 22:54)</a>:</h4>
<p>hm, so like</p>
<div class="codehilite"><pre><span></span>struct RangeInclusive&lt;Idx: SomeTrait&gt; {
    start: Idx,
    end: Idx,
    is_empty: Idx::Empty,
}
</pre></div>



<a name="187314237"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314237" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314237">(Feb 03 2020 at 22:54)</a>:</h4>
<p>so instead of having it be <code>Option&lt;bool&gt;</code>, it would instead be <code>Trait::IterState</code>, which would be <code>bool</code> for integer types, and <code>()</code> for other stuff ?&gt;</p>



<a name="187314245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314245">(Feb 03 2020 at 22:54)</a>:</h4>
<p>Yeah exactly</p>



<a name="187314273"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314273" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314273">(Feb 03 2020 at 22:55)</a>:</h4>
<p>i don't know if this would actually <em>resolve</em> the problem here</p>



<a name="187314281"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314281" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314281">(Feb 03 2020 at 22:55)</a>:</h4>
<p>I'm not sure if we can add that backwards-compatibly</p>



<a name="187314295"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314295" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314295">(Feb 03 2020 at 22:55)</a>:</h4>
<p>I find the backwards-compatibility situation here very murky</p>



<a name="187314356"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314356" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314356">(Feb 03 2020 at 22:56)</a>:</h4>
<p>i.e., even if we have <code>impl&lt;T&gt; SomeTrait for T {}</code> then I imagine you still need <code>T: SomeTrait</code> if you have <code>struct SomeRangeContainer&lt;T&gt; { range: RangeInclusive&lt;T&gt; }</code>, right?</p>



<a name="187314381"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314381" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314381">(Feb 03 2020 at 22:56)</a>:</h4>
<p>ah yeah, it would have to be something everybody implements</p>



<a name="187314382"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314382" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314382">(Feb 03 2020 at 22:56)</a>:</h4>
<p>(I guess it would be <code>default impl&lt;T&gt; SomeTrait for T {}</code></p>



<a name="187314393"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314393" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314393">(Feb 03 2020 at 22:56)</a>:</h4>
<p>my point is that we can't add that bound backwards compatibly I think</p>



<a name="187314399"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314399" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314399">(Feb 03 2020 at 22:56)</a>:</h4>
<p>right. But maybe even worse, it might have to be something like <code>Sized</code></p>



<a name="187314409"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314409" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314409">(Feb 03 2020 at 22:57)</a>:</h4>
<p>yeah I retract my suggestion now.</p>



<a name="187314443"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314443" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314443">(Feb 03 2020 at 22:57)</a>:</h4>
<p>I think if we were to go down that path I would just eagerly compute the emptiness for integers in the constructor</p>



<a name="187314449"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314449" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314449">(Feb 03 2020 at 22:57)</a>:</h4>
<p>i.e., we do that calculation up front</p>



<a name="187314454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314454">(Feb 03 2020 at 22:57)</a>:</h4>
<p>it does work if you have a blanket impl that applies to all types</p>



<a name="187314511"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314511" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314511">(Feb 03 2020 at 22:58)</a>:</h4>
<p>yeah but then we'd be doing somethinig involving specialization of an associated type</p>



<a name="187314512"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314512" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314512">(Feb 03 2020 at 22:58)</a>:</h4>
<p>ie. this compiles</p>
<div class="codehilite"><pre><span></span><span class="k">struct</span> <span class="nc">Inner</span><span class="o">&lt;</span><span class="n">T</span>: <span class="nc">Trait</span><span class="o">&gt;</span><span class="p">(</span><span class="n">T</span><span class="p">);</span><span class="w"></span>

<span class="k">trait</span><span class="w"> </span><span class="n">Trait</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>
<span class="k">impl</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="n">Trait</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">T</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>

<span class="k">struct</span> <span class="nc">Outer</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="n">inner</span>: <span class="nc">Inner</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="p">,</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="187314517"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314517" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314517">(Feb 03 2020 at 22:58)</a>:</h4>
<p>true</p>



<a name="187314550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314550">(Feb 03 2020 at 22:59)</a>:</h4>
<p>huh, I would.. not have expected that</p>



<a name="187314573"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314573" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314573">(Feb 03 2020 at 22:59)</a>:</h4>
<div class="codehilite"><pre><span></span><span class="k">trait</span><span class="w"> </span><span class="n">Foo</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">Assoc</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>

<span class="k">impl</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="n">Foo</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">T</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">Assoc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Option</span><span class="o">&lt;</span><span class="kt">bool</span><span class="o">&gt;</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>

<span class="k">struct</span> <span class="nc">Assoc</span><span class="o">&lt;</span><span class="n">T</span>: <span class="nc">Foo</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">value</span>: <span class="nc">T</span>::<span class="n">Assoc</span><span class="w"> </span><span class="p">}</span><span class="w"></span>

<span class="k">struct</span> <span class="nc">Bar</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="p">(</span><span class="n">Assoc</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="p">);</span><span class="w"></span>
</pre></div>



<a name="187314579"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314579" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314579">(Feb 03 2020 at 22:59)</a>:</h4>
<blockquote>
<p>I think if we were to go down that path I would just eagerly compute the emptiness for integers in the constructor</p>
</blockquote>
<p>I assume there's some argument against doing this that's already been posted somewhere?</p>



<a name="187314594"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314594" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314594">(Feb 03 2020 at 22:59)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> well, it still needs specialization</p>



<a name="187314618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314618">(Feb 03 2020 at 23:00)</a>:</h4>
<p>and arguably if we go down that road then we are basically saying "if you're not an integer your PartialEq is just broken"</p>



<a name="187314678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314678">(Feb 03 2020 at 23:00)</a>:</h4>
<p>otoh, I don't even know of many uses for PartialEq on ranges</p>



<a name="187314694"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314694" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314694">(Feb 03 2020 at 23:00)</a>:</h4>
<p>hmm, i would nonetheless worry about breaking it</p>



<a name="187314716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314716">(Feb 03 2020 at 23:00)</a>:</h4>
<p>it = ? in that?</p>



<a name="187314730"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314730" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314730">(Feb 03 2020 at 23:01)</a>:</h4>
<p>I would worry about breaking PartialEq on ranges.</p>



<a name="187314750"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314750" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314750">(Feb 03 2020 at 23:01)</a>:</h4>
<p>(even for non-integers)</p>



<a name="187314752"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314752" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314752">(Feb 03 2020 at 23:01)</a>:</h4>
<p>hm, sure -- my proposal does not do so (or at least not known cases), but hash the Hash/Eq problem</p>



<a name="187314769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314769">(Feb 03 2020 at 23:01)</a>:</h4>
<p>Though I do think the situation of having it be iteration sensitive would not have been so bad</p>



<a name="187314828"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314828" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314828">(Feb 03 2020 at 23:02)</a>:</h4>
<p>i.e. <a href="https://github.com/rust-lang/rust/pull/51622#discussion_r196309340" target="_blank" title="https://github.com/rust-lang/rust/pull/51622#discussion_r196309340">this conversation</a>, I think, could have been dealt with via messaging</p>



<a name="187314840"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314840" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314840">(Feb 03 2020 at 23:02)</a>:</h4>
<p>(and allowing <code> r == (r.start()..=r.end())</code> to not always be true)</p>



<a name="187314851"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314851" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314851">(Feb 03 2020 at 23:02)</a>:</h4>
<p>To be clear:</p>
<div class="codehilite"><pre><span></span>fn reflexive(r: RangeInclusive) -&gt; bool {
    r == (r.start()..=r.end())
}
</pre></div>


<p>is not always true <em>today</em></p>



<a name="187314885"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314885" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314885">(Feb 03 2020 at 23:03)</a>:</h4>
<p>because <code>(u8::max_value()..=u8::max_value()).next() != (u8::max_value()..=u8::max_value())</code></p>



<a name="187314907"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314907" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314907">(Feb 03 2020 at 23:03)</a>:</h4>
<p>and based on testing there's no sentinel value or anything for performance reasons</p>



<a name="187314916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314916">(Feb 03 2020 at 23:03)</a>:</h4>
<p>wow, wait, I thought part of the goal of the current design was to achieve that reflexivity property</p>



<a name="187314959"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314959" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314959">(Feb 03 2020 at 23:04)</a>:</h4>
<p>my understanding is that the goal is a bit different</p>



<a name="187314974"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187314974" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187314974">(Feb 03 2020 at 23:04)</a>:</h4>
<p>(I used to think like you did, so my prior comments may have been unclear)</p>



<a name="187315002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187315002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187315002">(Feb 03 2020 at 23:05)</a>:</h4>
<p>because AFAIK we cannot guarantee reflexivity like that (emptiness is a property not represented by it)</p>



<a name="187315021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187315021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187315021">(Feb 03 2020 at 23:05)</a>:</h4>
<p>i.e., start and end are insufficient to faithfully inform about the whole state of a RangeInclusive</p>



<a name="187315099"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187315099" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187315099">(Feb 03 2020 at 23:06)</a>:</h4>
<p>yeah. I was mostly figuring we would just accept that the <code>x..=y</code> form is incapable of expressing all possible RangeInclusives</p>



<a name="187315110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187315110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187315110">(Feb 03 2020 at 23:06)</a>:</h4>
<p>What we are trying to do, and I believe accomplish today, is:</p>
<blockquote>
<p>Right. Both "compares equal when reconstructed form accessors" and "yields the same items if compares equal" seem desirable, but we can’t have both with this PR’s three-fields design. (<a href="https://github.com/rust-lang/rust/pull/51622#discussion_r196513565" target="_blank" title="https://github.com/rust-lang/rust/pull/51622#discussion_r196513565">https://github.com/rust-lang/rust/pull/51622#discussion_r196513565</a>)</p>
</blockquote>



<a name="187315126"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187315126" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187315126">(Feb 03 2020 at 23:06)</a>:</h4>
<p>er, specifically, the latter</p>



<a name="187315133"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187315133" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187315133">(Feb 03 2020 at 23:06)</a>:</h4>
<p>i.e. that <em>if</em> PartialEq == true, then self.next() == other.next()</p>



<a name="187315226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187315226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187315226">(Feb 03 2020 at 23:08)</a>:</h4>
<p>(gottta go AFK)</p>



<a name="187315269"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187315269" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187315269">(Feb 03 2020 at 23:09)</a>:</h4>
<p>I think my impl does not satisfy that fully though, as <code>((self.start == self.end) == (other.start == other.end))</code> is a necessary but insufficient condition for determining emptiness, so it would not work.</p>



<a name="187315379"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187315379" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187315379">(Feb 03 2020 at 23:10)</a>:</h4>
<p>And indeed, it does make sense that determining emptiness <em>requires</em> PartialOrd/Step in the general case.</p>



<a name="187460644"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187460644" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187460644">(Feb 05 2020 at 15:01)</a>:</h4>
<p>To me it seems like there's a fundamental design bug somewhere here. Either in the fact that ranges <em>are</em> iterators (vs implementing <code>IntoIterator</code>), or in the fact that ranges don't require <code>PartialOrd</code> for their <code>Idx</code></p>



<a name="187460711"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187460711" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187460711">(Feb 05 2020 at 15:02)</a>:</h4>
<p>(and I wonder whether we could address such design bugs via an edition change? Not sure.)</p>



<a name="187462093"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187462093" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187462093">(Feb 05 2020 at 15:16)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> I think there is a design bug, yes, or at least an unfortunate reality. I think we have no mechanism that allows us to change std via edition mechanisms (though I've long thought about trying to design something, just never had the time)</p>



<a name="187462117"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187462117" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> kennytm <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187462117">(Feb 05 2020 at 15:16)</a>:</h4>
<p>the only possible edition change is make <code>x..=y</code> return a different type which is IntoIterator but not Iterator.</p>



<a name="187462566"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187462566" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187462566">(Feb 05 2020 at 15:21)</a>:</h4>
<p>hm, I think we can't even really do that without breaking a bunch of code that has <code>let foo: RangeInclusive&lt;usize&gt; = x..=y</code> right?</p>



<a name="187462585"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187462585" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187462585">(Feb 05 2020 at 15:21)</a>:</h4>
<p>fixably, in theory, but seems too big a change for editions</p>



<a name="187462835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187462835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> kennytm <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187462835">(Feb 05 2020 at 15:24)</a>:</h4>
<p>yeah that would be a disruptive change. i just mean it is "possible" (unlike removing Iterator from RangeInclusive which out right requires Rust 2.0) <span aria-label="upside down" class="emoji emoji-1f643" role="img" title="upside down">:upside_down:</span></p>



<a name="187463070"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187463070" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187463070">(Feb 05 2020 at 15:26)</a>:</h4>
<p>my thoughts in this direction have been to make it not possible to use that impl (i.e., the compiler ignores its existence) in the next edition, with the thought being that since (to my knowledge) you can't test for lack of a trait impl positively that might work out fine</p>



<a name="187515250"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187515250" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187515250">(Feb 06 2020 at 02:28)</a>:</h4>
<p><code>let foo: RangeInclusive&lt;usize&gt; = x..=y</code> seems unlikely to be common</p>



<a name="187515259"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187515259" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187515259">(Feb 06 2020 at 02:29)</a>:</h4>
<p>if we could make edition changes for modules I certainly think we can for this</p>



<a name="187515260"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187515260" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187515260">(Feb 06 2020 at 02:29)</a>:</h4>
<p>whether it's a good idea is a different matter</p>



<a name="187516615"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187516615" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> kennytm <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187516615">(Feb 06 2020 at 03:09)</a>:</h4>
<p>well you could also allow coercion from <code>NewRangeInclusive&lt;X&gt;</code> to <code>RangeInclusive&lt;X&gt;</code> <span aria-label="upside down" class="emoji emoji-1f643" role="img" title="upside down">:upside_down:</span></p>



<a name="187563296"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187563296" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187563296">(Feb 06 2020 at 16:25)</a>:</h4>
<p>in the meantime: PR <a href="https://github.com/rust-lang/rust/issues/68835" target="_blank" title="https://github.com/rust-lang/rust/issues/68835">#68835</a> looks good to me. We can just land it, right <span class="user-mention" data-user-id="116122">@simulacrum</span> ? (I don't think it needs a backport or anything, since its not like we've seen this weaponized in practice...")</p>



<a name="187563461"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187563461" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187563461">(Feb 06 2020 at 16:27)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> possibly modulo test ignoring</p>



<a name="187563486"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187563486" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187563486">(Feb 06 2020 at 16:27)</a>:</h4>
<p>I'll take a look today and try to approve it</p>



<a name="187563505"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187563505" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187563505">(Feb 06 2020 at 16:27)</a>:</h4>
<p>Oh I thought they added that, but did not actually confirm with eyes</p>



<a name="187563595"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/RangeInclusive%20representation%3A%20%2367194/near/187563595" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/RangeInclusive.20representation.3A.20.2367194.html#187563595">(Feb 06 2020 at 16:28)</a>:</h4>
<p>I think there was a couple iterations</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>